package com.eedi.framework.org.dal.mapper;

import com.eedi.framework.common.util.object.BeanUtils;
import com.eedi.framework.mybatis.core.mapper.BaseMapperX;
import com.eedi.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.eedi.framework.org.controller.sys.vo.config.SysOrgConfigReq;
import com.eedi.framework.org.controller.sys.vo.config.SysOrgConfigResp;
import com.eedi.framework.org.convert.SysOrgConfigConvert;
import com.eedi.framework.org.dal.dataobject.SysOrgConfigDO;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface SysOrgConfigMapper extends BaseMapperX<SysOrgConfigDO> {

    default SysOrgConfigResp get() {
        LambdaQueryWrapperX<SysOrgConfigDO> queryWrapper = new LambdaQueryWrapperX<>();
        queryWrapper.last("limit 1");
        return SysOrgConfigConvert.INSTANCE.convert(selectOne(queryWrapper));
    }

    default SysOrgConfigResp selectBySysConfigId(String orgConfigId){
        LambdaQueryWrapperX<SysOrgConfigDO> queryWrapper = new LambdaQueryWrapperX<>();
        queryWrapper.eq(SysOrgConfigDO::getOrgConfigId, orgConfigId);
        return SysOrgConfigConvert.INSTANCE.convert(selectOne(queryWrapper));
    }

   default void setup(String orgConfigId, SysOrgConfigReq createReqVO){
       SysOrgConfigDO updateObj = BeanUtils.toBean(createReqVO, SysOrgConfigDO.class);
       updateObj.setOrgConfigId(orgConfigId);
       updateById(updateObj);
   }

   default void insertOrgConfig(SysOrgConfigReq createReqVO){
        SysOrgConfigDO updateObj = BeanUtils.toBean(createReqVO, SysOrgConfigDO.class);
        insert(updateObj);
    }
}
